package cn.iocoder.yudao.module.member.controller.admin.student.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 学生管理创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class StudentCreateReqVO extends StudentBaseVO {

    @ApiModelProperty(value = "头像", required = true, example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    @NotNull(message = "头像不能为空")
    private String avatar;

    @ApiModelProperty(value = "密码", required = true, example = "123456")
    @NotNull(message = "密码不能为空")
    private String password;

    @ApiModelProperty(value = "注册 IP", required = true, example = "10.255.142.32")
    @NotNull(message = "注册 IP不能为空")
    private String registerIp;

    @ApiModelProperty(value = "最后登录IP", required = true, example = "25.321.21.58")
    @NotNull(message = "最后登录IP不能为空")
    private String loginIp;

    @ApiModelProperty(value = "学生大头照", required = true, example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    @NotNull(message = "学生大头照不能为空")
    private String studentPictureUrl;

    @ApiModelProperty(value = "当前身份", required = true, example = "graduates")
    @NotNull(message = "当前身份不能为空")
    private String identify;

    @ApiModelProperty(value = "性别", required = true, example = "1")
    @NotNull(message = "性别不能为空")
    private String sex;

    @ApiModelProperty(value = "身份认证正面图片地址", required = true, example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    @NotNull(message = "身份认证正面图片地址不能为空")
    private String authenticationFrontPictureUrl;

    @ApiModelProperty(value = "身份认证反面图片地址", required = true, example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    @NotNull(message = "身份认证反面图片地址不能为空")
    private String authenticationBackPictureUrl;

    @ApiModelProperty(value = "政治面貌", required = true, example = "党员")
    @NotNull(message = "政治面貌不能为空")
    private String political;

    @ApiModelProperty(value = "出生日期", required = true, example = "1991-10-25")
    @NotNull(message = "出生日期不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date birthday;

    @ApiModelProperty(value = "居住城市", required = true, example = "长沙")
    @NotNull(message = "居住城市不能为空")
    private String liveCity;

    @ApiModelProperty(value = "毕业时间", required = true, example = "2011-10-02")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date graduateTime;

    @ApiModelProperty(value = "民族", required = true, example = "汉族")
    @NotNull(message = "民族不能为空")
    private String clan;

    @ApiModelProperty(value = "邮箱", required = true, example = "chow5945@outlook.com")
    @NotNull(message = "邮箱不能为空")
    private String email;

    @ApiModelProperty(value = "学历", required = true, example = "本科")
    @NotNull(message = "学历不能为空")
    private String education;

    @ApiModelProperty(value = "年级", required = true, example = "研三")
    @NotNull(message = "年级不能为空")
    private String grade;

    @ApiModelProperty(value = "录取方式", required = true, example = "统招")
    @NotNull(message = "录取方式不能为空")
    private String matriculateWay;

    @ApiModelProperty(value = "是否有学位证书", required = true, example = "true")
    @NotNull(message = "是否有学位证书不能为空")
    private String diploma;

    @ApiModelProperty(value = "大学名称", required = true, example = "长沙理工大学")
    @NotNull(message = "大学名称不能为空")
    private String universityName;

    @ApiModelProperty(value = "所学专业", required = true, example = "信息工程")
    @NotNull(message = "所学专业不能为空")
    private String specialty;

    @ApiModelProperty(value = "在校开始日期", required = true, example = "2011-09-01")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date universityStartDate;

    @ApiModelProperty(value = "在校结束日期", required = true, example = "2015-07-15")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date universityEndDate;

    @ApiModelProperty(value = "期望行业(可能多个)", required = true, example = "汽车工程")
    @NotNull(message = "期望行业(可能多个)不能为空")
    private String targetIndustry;

    @ApiModelProperty(value = "期望城市", required = true, example = "长沙")
    @NotNull(message = "期望城市不能为空")
    private String targetCity;

    @ApiModelProperty(value = "最低薪资", required = true, example = "10000")
    @NotNull(message = "最低薪资不能为空")
    private Integer lowestSalary;

    @ApiModelProperty(value = "最高薪资", required = true, example = "30000")
    @NotNull(message = "最高薪资不能为空")
    private Integer highestSalary;

    @ApiModelProperty(value = "身份证")
    private String cardNo;

    @ApiModelProperty(value = "身份证正面")
    private String authenticationCardFrontPictureUrl;

    @ApiModelProperty(value = "身份证反面")
    private String authenticationCardBackPictureUrl;

    @ApiModelProperty(value = "审核反馈")
    private String remark;

}